#
# (C) COPYRIGHT 2012-2015 ARM Limited. All rights reserved.
#
# This program is free software and is provided to you under the terms of the
# GNU General Public License version 2 as published by the Free Software
# Foundation, and any use by you of this program is subject to the terms
# of such GNU licence.
#
# A copy of the licence is included with the program, and can also be obtained
# from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA  02110-1301, USA.
#
#



menuconfig MALI_MIDGARD
	tristate "Mali Midgard series support"
	select GPU_TRACEPOINTS if ANDROID
	default n
	help
	  Enable this option to build support for a ARM Mali Midgard GPU.

	  To compile this driver as a module, choose M here:
	  this will generate a single module, called mali_kbase.

config MALI_MIDGARD_DVFS
	bool "Enable legacy DVFS"
	depends on MALI_MIDGARD && !MALI_DEVFREQ && !MALI_PLATFORM_DEVICETREE
	default n
	help
	  Choose this option to enable legacy DVFS in the Mali Midgard DDK.

config MALI_MIDGARD_ENABLE_TRACE
	bool "Enable kbase tracing"
	depends on MALI_MIDGARD
	default n
	help
	  Enables tracing in kbase.  Trace log available through
	  the "mali_trace" debugfs file, when the CONFIG_DEBUG_FS is enabled

config MALI_DEVFREQ
	bool "devfreq support for Mali"
	depends on MALI_MIDGARD && PM_DEVFREQ
	help
	  Support devfreq for Mali.

	  Using the devfreq framework and, by default, the simpleondemand
	  governor, the frequency of Mali will be dynamically selected from the
	  available OPPs.

config MALI_DMA_FENCE
	bool "DMA_BUF fence support for Mali (EXPERIMENTAL)"
	depends on MALI_MIDGARD && !KDS
	default n
	help
	  Support DMA_BUF fences for Mali.

	  This option should only be enabled if KDS is not present and
	  the Linux Kernel has built in support for DMA_BUF fences.

# MALI_EXPERT configuration options

menuconfig MALI_EXPERT
	depends on MALI_MIDGARD
	bool "Enable Expert Settings"
	default n
	help
	  Enabling this option and modifying the default settings may produce a driver with performance or
	  other limitations.

config MALI_PRFCNT_SET_SECONDARY
	bool "Use secondary set of performance counters"
	depends on MALI_MIDGARD && MALI_EXPERT
	default n
	help
	  Select this option to use secondary set of performance counters. Kernel
	  features that depend on an access to the primary set of counters may
	  become unavailable. Enabling this option will prevent power management
	  from working optimally and may cause instrumentation tools to return
	  bogus results.

	  If unsure, say N.

config MALI_DEBUG_SHADER_SPLIT_FS
	bool "Allow mapping of shader cores via sysfs"
	depends on MALI_MIDGARD && MALI_EXPERT
	default n
	help
	  Select this option to provide a sysfs entry for runtime configuration of shader
	  core affinity masks.

choice
	prompt "Platform configuration"
	depends on MALI_MIDGARD && MALI_EXPERT
	default MALI_PLATFORM_DEVICETREE
	help
	  Select the SOC platform that contains a Mali Midgard GPU

config MALI_PLATFORM_DEVICETREE
	bool "Device Tree platform"
	depends on OF
	help
	  Select this option to use Device Tree with the Mali driver.

	  When using this option the Mali driver will get the details of the
	  GPU hardware from the Device Tree. This means that the same driver
	  binary can run on multiple platforms as long as all the GPU hardware
	  details are described in the device tree.

	  Device Tree is the recommended method for the Mali driver platform
	  integration.

config MALI_PLATFORM_VEXPRESS
	depends on ARCH_VEXPRESS && (ARCH_VEXPRESS_CA9X4 || ARCH_VEXPRESS_CA15X4)
	bool "Versatile Express"
config MALI_PLATFORM_VEXPRESS_VIRTEX7_40MHZ
	depends on ARCH_VEXPRESS && (ARCH_VEXPRESS_CA9X4 || ARCH_VEXPRESS_CA15X4)
	bool "Versatile Express w/Virtex7 @ 40Mhz"
config MALI_PLATFORM_GOLDFISH
	depends on ARCH_GOLDFISH
	bool "Android Goldfish virtual CPU"
config MALI_PLATFORM_PBX
	depends on ARCH_REALVIEW && REALVIEW_EB_A9MP && MACH_REALVIEW_PBX
	bool "Realview PBX-A9"
config MALI_PLATFORM_THIRDPARTY
	bool "Third Party Platform"
endchoice

config MALI_PLATFORM_THIRDPARTY_NAME
	depends on MALI_MIDGARD && MALI_PLATFORM_THIRDPARTY && MALI_EXPERT
	string "Third party platform name"
	help
	  Enter the name of a third party platform that is supported. The third part configuration
	  file must be in midgard/config/tpip/mali_kbase_config_xxx.c where xxx is the name
	  specified here.

config MALI_DEBUG
	bool "Debug build"
	depends on MALI_MIDGARD && MALI_EXPERT
	default n
	help
	  Select this option for increased checking and reporting of errors.

config MALI_TRACE_TIMELINE
	bool "Timeline tracing"
	depends on MALI_MIDGARD && MALI_EXPERT
	default n
	help
	  Enables timeline tracing through the kernel tracepoint system.

config MALI_SYSTEM_TRACE
	bool "Enable system event tracing support"
	depends on MALI_MIDGARD && MALI_EXPERT
	default n
	help
	  Choose this option to enable system trace events for each
	  kbase event.	This is typically used for debugging but has
	  minimal overhead when not in use. Enable only if you know what
	  you are doing.

source "drivers/gpu/arm/midgard/platform/Kconfig"
